
using System;

namespace SpotifyGenNHibernate.EN.Spotify
{
        public class CancionEN
        {
        /**
         *
         */

        private int idCancion;

        /**
         *
         */

        private String titulo;

        /**
         *
         */

        private int duracion;

        /**
         *
         */

        private double precio;

        /**
         *
         */

        private int popularidad;

        /**
         *
         */

        private System.Collections.Generic.IList<SpotifyGenNHibernate.EN.Spotify.ColaReproduccionEN> colaReproduccion;

        /**
         *
         */

        private Spotify.AlbumEN album;

        /**
         *
         */

        private System.Collections.Generic.IList<SpotifyGenNHibernate.EN.Spotify.UsuarioEN> usuario;





        public virtual int IdCancion { get { return idCancion; } set { idCancion = value;  } }


        public virtual String Titulo { get { return titulo; } set { titulo = value;  } }


        public virtual int Duracion { get { return duracion; } set { duracion = value;  } }


        public virtual double Precio { get { return precio; } set { precio = value;  } }


        public virtual int Popularidad { get { return popularidad; } set { popularidad = value;  } }


        public virtual System.Collections.Generic.IList<SpotifyGenNHibernate.EN.Spotify.ColaReproduccionEN> ColaReproduccion { get { return colaReproduccion; } set { colaReproduccion = value;  } }


        public virtual Spotify.AlbumEN Album { get { return album; } set { album = value;  } }


        public virtual System.Collections.Generic.IList<SpotifyGenNHibernate.EN.Spotify.UsuarioEN> Usuario { get { return usuario; } set { usuario = value;  } }



        public CancionEN()
        {
        }



        public CancionEN(int idCancion, String titulo, int duracion, double precio, int popularidad, System.Collections.Generic.IList<SpotifyGenNHibernate.EN.Spotify.ColaReproduccionEN> colaReproduccion, Spotify.AlbumEN album, System.Collections.Generic.IList<SpotifyGenNHibernate.EN.Spotify.UsuarioEN> usuario)
        {
                this.init (idCancion, titulo, duracion, precio, popularidad, colaReproduccion, album, usuario);
        }


        public CancionEN(CancionEN cancion)
        {
                this.init (cancion.IdCancion, cancion.Titulo, cancion.Duracion, cancion.Precio, cancion.Popularidad, cancion.ColaReproduccion, cancion.Album, cancion.Usuario);
        }

        private void init (int idCancion, String titulo, int duracion, double precio, int popularidad, System.Collections.Generic.IList<SpotifyGenNHibernate.EN.Spotify.ColaReproduccionEN> colaReproduccion, Spotify.AlbumEN album, System.Collections.Generic.IList<SpotifyGenNHibernate.EN.Spotify.UsuarioEN> usuario)
        {
                this.IdCancion = IdCancion;


                this.Titulo = titulo;

                this.Duracion = duracion;

                this.Precio = precio;

                this.Popularidad = popularidad;

                this.ColaReproduccion = colaReproduccion;

                this.Album = album;

                this.Usuario = usuario;
        }

        public override bool Equals (object obj)
        {
                if (obj == null)
                        return false;
                CancionEN t = obj as CancionEN;
                if (t == null)
                        return false;
                if (IdCancion.Equals (t.IdCancion))
                        return true;
                else
                        return false;
        }

        public override int GetHashCode ()
        {
                int hash = 13;

                hash += (null == IdCancion ? 0 : this.IdCancion.GetHashCode ());
                return hash;
        }
        }
}
